//
//  HMTabBarView.swift
//  GuoGuo
//
//  Created by 艾小新 on 16/7/29.
//  Copyright © 2016年 xiaoxin. All rights reserved.
//

import UIKit

class HMTabBarView: UITabBar {

    var composeClick: (()->())?
    
    // 在View中要重写构造方法init
    override init(frame: CGRect) {
        
        super.init(frame: frame)
        // 在这里要添加一个加号控件
        setupUI()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    
    func setupUI() {
        backgroundColor = UIColor(colorLiteralRed: 222, green: 222, blue: 222, alpha: 0.9)
        backgroundImage = UIImage(named: "tabbar_background")
        addSubview(addBtn)
    }
    
    
    ///  每次子控件布局代码都写在这里
    override func layoutSubviews() {
        
        // 每一个tabBar 的宽度
        let itemW = bounds.width / 5
        var index = 0
        
        // 调整其他按钮的位置和宽度
        for value in subviews {
            // 如果是 uibarButton
            // 1. 取到对应按钮
            if value.isKindOfClass(NSClassFromString("UITabBarButton")!) {
                // 2. 计算出对应按钮位置大小
                // 计算 x 和 width
                let x = CGFloat(index) * itemW
                // 3. 设置
                value.frame.size.width = itemW
                value.frame.origin.x = x
                
                // 递增
                index++
                
                // 如果发现下一次遍历的是第3个按钮,那么就往后一个位置,index++
                if index == 2 {
                    index++
                }
            }
        }
        
        addBtn.center = CGPoint(x: self.center.x, y: self.frame.height * 0.5)
    }
    
    
    // View不应处理单机事件，应该交给HMMainViewController,此时需要一个闭包
    func composeBtnClock() {
        composeClick?()
    }
    
    lazy var addBtn:UIButton = {
        
       let btn = UIButton()
        btn.setBackgroundImage(UIImage(named:"tabbar_compose_button"), forState: .Normal)
        btn.setBackgroundImage(UIImage(named:"tabbar_compose_button_highlighted"), forState: .Highlighted)
        btn.setImage(UIImage(named:"tabbar_compose_icon_add"), forState: .Normal)
        btn.setImage(UIImage(named:"tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        // 自动适应宽高
        btn.sizeToFit()
        btn.addTarget(self, action: #selector(HMTabBarView.composeBtnClock), forControlEvents: .TouchUpInside)
        
        return btn
   
    }()

    

}
